import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
// 引入 Element Plus
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';

// 图标 全局样式
import '@/assets/icon/iconfont.css';
import '@/assets/base.scss';

// 引入 cookie
import vueCookies from 'vue-cookies';

// 自定义全局工具
import Verify from '@/utils/Verify';
import Message from '@/utils/Message';
import Request from '@/utils/Request';
// 自定义组件
import Dialog from './components/Dialog.vue';

// 创建应用实例
const app = createApp(App);

// 使用 Element Plus
app.use(ElementPlus);

// 使用路由
app.use(router);

// 注册全局组件
app.component('Dialog', Dialog);

// 全局工具类型声明
declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    Message: typeof Message;
    Verify: typeof Verify;
    Request: typeof Request;
    vueCookies: typeof vueCookies;
  }
}

// 挂载全局工具
app.config.globalProperties.Verify = Verify;
app.config.globalProperties.Message = Message;
app.config.globalProperties.Request = Request;
app.config.globalProperties.vueCookies = vueCookies;



// 挂载应用
app.mount('#app');